/*
 * @Date: 2020-07-12 08:18:31
 * @LastEditors: zhiqinfff
 * @LastEditTime: 2020-07-14 23:12:54
 * @FilePath: /mobileProject/src/axios/request.js
 */ 
//request.js
import axios from "axios";
import qs from "qs";
import { Message } from 'element-ui';

/****** 创建axios实例 ******/
const service = axios.create({
    baseURL: '', // api的base_url
    timeout: 5000 // 请求超时时间
});

/****** request拦截器==>对请求参数做处理 ******/
service.interceptors.request.use(config => {
    config.method === 'post'
        ? config.data = qs.stringify({ ...config.data })
        : config.params = { ...config.params };
    config.headers['Content-Type'] = 'application/x-www-form-urlencoded';
    return config;
}, error => { //请求错误处理
    Message.error(error);
    Promise.reject(error)
});

/****** respone拦截器==>对响应做处理 ******/
service.interceptors.response.use(
    response => { //成功请求到数据
        //这里根据后端提供的数据进行对应的处理
        if (response?.data?.code === 0) {
            return response?.data;
        } else {
            Message.error(response?.data?.msg);
        }
    },
    error => { //响应错误处理
        let text = JSON.parse(JSON.stringify(error))?.response?.status === 404
            ? '404,接口没有找到'
            : '网络异常，请重试';
        Message({
            message: text,
            type: 'error',
            center: true
        });
        return Promise.reject(error)
    }
);

export default service;
